From: awilliam@xenbuild.aw Date: Wed, 19 Apr 2006 16:39:15 +0000 (-0600) Subject: [IA64] xensystem.h X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~16153 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=30d51f2217538c3fec9365b3ff3cefeac3a2c498;p=xen.git [IA64] xensystem.h Move all Xen memory space constants into xensystem.h Cleanup related to the move. Signed-off-by: Tristan Gingold --- diff --git a/xen/include/asm-ia64/linux-xen/asm/io.h b/xen/include/asm-ia64/linux-xen/asm/io.h index 45421f483b..8eef746e93 100644 --- a/xen/include/asm-ia64/linux-xen/asm/io.h +++ b/xen/include/asm-ia64/linux-xen/asm/io.h @@ -23,9 +23,7 @@ #define __SLOW_DOWN_IO do { } while (0) #define SLOW_DOWN_IO do { } while (0) -#ifdef XEN -#define __IA64_UNCACHED_OFFSET 0xe800000000000000UL -#else +#ifndef XEN #define __IA64_UNCACHED_OFFSET 0xc000000000000000UL /* region 6 */ #endif diff --git a/xen/include/asm-ia64/linux-xen/asm/system.h b/xen/include/asm-ia64/linux-xen/asm/system.h index ae5a8ae398..e80d13a057 100644 --- a/xen/include/asm-ia64/linux-xen/asm/system.h +++ b/xen/include/asm-ia64/linux-xen/asm/system.h @@ -20,12 +20,14 @@ #include #define GATE_ADDR __IA64_UL_CONST(0xa000000000000000) +#ifndef XEN /* * 0xa000000000000000+2*PERCPU_PAGE_SIZE * - 0xa000000000000000+3*PERCPU_PAGE_SIZE remain unmapped (guard page) */ #define KERNEL_START __IA64_UL_CONST(0xa000000100000000) #define PERCPU_ADDR (-PERCPU_PAGE_SIZE) +#endif #ifndef __ASSEMBLY__ @@ -185,6 +187,7 @@ do { \ (__ia64_id_flags & IA64_PSR_I) == 0; \ }) +#ifndef XEN #ifdef __KERNEL__ #ifdef CONFIG_IA32_SUPPORT @@ -285,6 +288,7 @@ void cpu_idle_wait(void); #define arch_align_stack(x) (x) #endif /* __KERNEL__ */ +#endif /* XEN */ #endif /* __ASSEMBLY__ */ diff --git a/xen/include/asm-ia64/uaccess.h b/xen/include/asm-ia64/uaccess.h index 7815cc22b6..6cf5158954 100644 --- a/xen/include/asm-ia64/uaccess.h +++ b/xen/include/asm-ia64/uaccess.h @@ -42,7 +42,6 @@ #include #include -#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) #define __access_ok(addr) (!IS_VMM_ADDRESS((unsigned long)(addr))) #define access_ok(addr, size) (__access_ok(addr)) #define array_access_ok(addr,count,size)( __access_ok(addr)) diff --git a/xen/include/asm-ia64/vmx_uaccess.h b/xen/include/asm-ia64/vmx_uaccess.h index eb9b03c34e..a6e27425f6 100644 --- a/xen/include/asm-ia64/vmx_uaccess.h +++ b/xen/include/asm-ia64/vmx_uaccess.h @@ -40,8 +40,6 @@ */ asm (".section \"__ex_table\", \"a\"\n\t.previous"); -/* VT-i reserves bit 60 for the VMM; guest addresses have bit 60 = bit 59 */ -#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) /* For back compatibility */ #define __access_ok(addr, size, segment) 1 #define access_ok(addr, size, segment) __access_ok((addr), (size), (segment)) diff --git a/xen/include/asm-ia64/xensystem.h b/xen/include/asm-ia64/xensystem.h index b056115f99..bf4811c0a6 100644 --- a/xen/include/asm-ia64/xensystem.h +++ b/xen/include/asm-ia64/xensystem.h @@ -13,15 +13,17 @@ #include #include -/* Define HV space hierarchy */ +/* Define HV space hierarchy. + VMM memory space is protected by CPL for paravirtualized domains and + by VA for VTi domains. VTi imposes VA bit 60 != VA bit 59 for VMM. */ #define XEN_VIRT_SPACE_LOW 0xe800000000000000 #define XEN_VIRT_SPACE_HIGH 0xf800000000000000 +#define __IA64_UNCACHED_OFFSET 0xe800000000000000UL + #define XEN_START_ADDR 0xf000000000000000 #define HYPERVISOR_VIRT_START 0xf000000000000000 -#undef KERNEL_START #define KERNEL_START 0xf000000004000000 -#undef PERCPU_ADDR #define SHAREDINFO_ADDR 0xf100000000000000 #define SHARED_ARCHINFO_ADDR (SHAREDINFO_ADDR + PAGE_SIZE) #define PERCPU_ADDR (SHAREDINFO_ADDR - PERCPU_PAGE_SIZE) @@ -33,13 +35,19 @@ #endif #define XEN_END_ADDR 0xf400000000000000 +#define IS_VMM_ADDRESS(addr) ((((addr) >> 60) ^ ((addr) >> 59)) & 1) + #ifndef __ASSEMBLY__ -#undef IA64_HAS_EXTRA_STATE #define IA64_HAS_EXTRA_STATE(t) 0 -#undef __switch_to -extern struct task_struct *vmx_ia64_switch_to (void *next_task); +struct vcpu; +extern void ia64_save_extra (struct vcpu *v); +extern void ia64_load_extra (struct vcpu *v); + +extern struct vcpu *vmx_ia64_switch_to (struct vcpu *next_task); +extern struct vcpu *ia64_switch_to (struct vcpu *next_task); + #define __switch_to(prev,next,last) do { \ ia64_save_fpu(prev->arch._thread.fph); \ ia64_load_fpu(next->arch._thread.fph); \ @@ -62,7 +70,6 @@ extern struct task_struct *vmx_ia64_switch_to (void *next_task); } \ } while (0) -#undef switch_to // FIXME SMP... see system.h, does this need to be different? #define switch_to(prev,next,last) __switch_to(prev, next, last)